<#571#>exactness<#571#>
If two implementations produce <#2299#>exact<#2299#> results for a computation that did not involve <#2300#>inexact<#2300#> intermediate results, the two ultimate results will be mathematically equivalent. This is generally not true of computations involving <#2301#>inexact<#2301#> numbers since approximate methods such as floating point arithmetic may be used, but it is the duty of each implementation to make the result as close as practical to the mathematically ideal result.
Rational operations such as <#585#>+<#585#> should always produce
<#2302#>exact<#2302#> results when given <#2303#>exact<#2303#> arguments.
If the operation is unable to produce an <#2304#>exact<#2304#> result,
then it may either report the violation of an implementation restriction
or it may silently coerce its
result to an <#2305#>inexact<#2305#> value.
See section~#restrictions#590>
With the exception of <#591#>inexact-;SPMgt;exact<#591#>, the operations described in this section must generally return inexact results when given any inexact arguments. An operation may, however, return an <#2306#>exact<#2306#> result if it can prove that the value of the result is unaffected by the inexactness of its arguments. For example, multiplication of any number by an <#2307#>exact<#2307#> zero may produce an <#2308#>exact<#2308#> zero result, even if the other argument is <#2309#>inexact<#2309#>.